using Sinacor.Infra.UI.Common;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System;
using System.Collections.ObjectModel;

namespace Sinacor.UI.Bovespa.Contabil.Model
{
    [Serializable]
    public class DespesaNota : BaseModel
    {

        private EnumWrapper<Model.Enum.TipoBaseDespesa> _baseDespesa;
        private string _codigo;
        private Model.EventoContabil _eventoContabil;
        private bool _incideIrrf;
        private decimal? _percentualDespesa;
        private DateTime? _pregaoFinal;
        private DateTime? _pregaoInicial;
        private decimal? _valorMaximo;
        private decimal? _valorMinimo;

        public DespesaNota()
        {
            _eventoContabil = new EventoContabil();
        }



        public EnumWrapper<Model.Enum.TipoBaseDespesa> BaseDespesa
        {
            get
            {
                return _baseDespesa;
            }
            set
            {
                _baseDespesa = value; this.OnPropertyChanged("BaseDespesa");
            }
        }

        public string Codigo
        {
            get
            {
                return _codigo;
            }
            set
            {
                _codigo = value; this.OnPropertyChanged("Codigo");
            }
        }

        public Model.EventoContabil EventoContabil
        {
            get
            {
                return _eventoContabil;
            }
            set
            {
                _eventoContabil = value; this.OnPropertyChanged("EventoContabil");
            }
        }

        public bool IncideIrrf
        {
            get
            {
                return _incideIrrf;
            }
            set
            {
                _incideIrrf = value; this.OnPropertyChanged("IncideIrrf");
            }
        }

        public decimal? PercentualDespesa
        {
            get
            {
                return _percentualDespesa;
            }
            set
            {
                _percentualDespesa = value; this.OnPropertyChanged("PercentualDespesa");
            }
        }

        public DateTime? PregaoFinal
        {
            get
            {
                return _pregaoFinal;
            }
            set
            {
                _pregaoFinal = value; this.OnPropertyChanged("PregaoFinal");
            }
        }

        public DateTime? PregaoInicial
        {
            get
            {
                return _pregaoInicial;
            }
            set
            {
                _pregaoInicial = value; this.OnPropertyChanged("PregaoInicial");
            }
        }

        public decimal? ValorMaximo
        {
            get
            {
                return _valorMaximo;
            }
            set
            {
                _valorMaximo = value; this.OnPropertyChanged("ValorMaximo");
            }
        }

        public decimal? ValorMinimo
        {
            get
            {
                return _valorMinimo;
            }
            set
            {
                _valorMinimo = value; this.OnPropertyChanged("ValorMinimo");
            }
        }
    }
}
